
SQLite 是一个轻量级的数据库,非常适合嵌入式和小型项目。Python 内置了 SQLite 支持,无需额外安装,直接开箱即用。今天我们就来聊聊如何在 Python 中高效使用 SQLite,从基础操作到进阶技巧,一步步带你掌握!
1. 连接 SQLite 数据库
在 Python 中操作 SQLite 非常简单,首先需要导入 sqlite3
模块,然后建立数据库连接:
import sqlite3
# 连接到数据库(如果不存在则自动创建)
conn = sqlite3.connect('example.db')
print("数据库连接成功!")
使用 connect()
方法可以创建或连接一个 SQLite 数据库文件,如果文件不存在,Python 会自动创建它。
2. 创建数据表
有了数据库连接后,我们可以用 cursor()
方法创建游标对象,然后执行 SQL 语句来建表:
cursor = conn.cursor()
# 创建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER
)
''')
print("数据表创建成功!")
这里我们创建了一个 users
表,包含 id
(主键)、name
(姓名)和 age
(年龄)三个字段。
3. 插入数据
接下来,我们往表里插入一些数据:
# 插入单条数据
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('张三', 25))
# 插入多条数据
users_data = [('李四', 30), ('王五', 22), ('赵六', 28)]
cursor.executemany("INSERT INTO users (name, age) VALUES (?, ?)", users_data)
# 提交事务
conn.commit()
print("数据插入成功!")
使用 execute()
插入单条数据,executemany()
插入多条数据,最后别忘了 commit()
提交事务,否则数据不会真正保存。
4. 查询数据
查询数据是最常见的操作,我们可以用 SELECT
语句获取数据:
# 查询所有数据
cursor.execute("SELECT * FROM users")
all_users = cursor.fetchall()
print("所有用户:", all_users)
# 条件查询
cursor.execute("SELECT * FROM users WHERE age > 25")
older_users = cursor.fetchall()
print("年龄大于25的用户:", older_users)
fetchall()
获取所有结果,fetchone()
获取单条数据,fetchmany(n)
获取指定数量的数据。
5. 更新和删除数据
如果需要修改或删除数据,可以使用 UPDATE
和 DELETE
语句:
# 更新数据
cursor.execute("UPDATE users SET age = ? WHERE name = ?", (26, '张三'))
# 删除数据
cursor.execute("DELETE FROM users WHERE name = ?", ('赵六',))
conn.commit()
print("数据更新和删除完成!")
6. 事务管理
SQLite 支持事务,确保数据操作的完整性:
try:
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('钱七', 35))
# 模拟错误
# some_error_condition = True
# if some_error_condition:
# raise ValueError("模拟事务失败")
conn.commit()
except Exception as e:
conn.rollback()
print("事务回滚:", e)
else:
print("事务提交成功!")
使用 try-except
结合 commit()
和 rollback()
可以确保数据一致性。
7. 关闭连接
最后,别忘了关闭数据库连接,释放资源:
conn.close()
print("数据库连接已关闭!")
总结
通过这篇教程,我们学习了 Python 如何操作 SQLite 数据库,包括:
- 连接数据库
- 创建表
- 插入、查询、更新、删除数据
- 事务管理
SQLite 轻量高效,特别适合小型项目和本地数据存储。现在你已经掌握了基本操作,快去试试吧!
